iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 21
1

Day 21 系統服務

其實在我的認知,系統服務其實就像是開啟某一個工具或是系統來運作,例如mail服務、防火牆、網路卡等等,這些都算是一種服務,但我們需要他在開啟,不需要他就關閉甚至移除,所以系統服務你說不重要嗎?其實很重要的。

Systemd

Systemd 是一個 Linux 的系統服務工具,是為了改善系統的啟動和管理提供一套完整的解決方案,在 CentOS 7 已經開始支援。

  • /lib/systemd/system 內建系統的服務啟動檔位置。
  • /etc/systemd/system 客製的服務啟動檔位置。

systemctlSystemd 系統服務工具 的主要指令。

[root@localhost ~]# systemctl [操作指令] [服務名稱].service

列出所有可用單元

[root@localhost ~]# systemctl list-unit-files

UNIT FILE                                     STATE
proc-sys-fs-binfmt_misc.automount             static
dev-hugepages.mount                           static
dev-mqueue.mount                              static
proc-sys-fs-binfmt_misc.mount                 static
sys-fs-fuse-connections.mount                 static
sys-kernel-config.mount                       static

列出全部失敗的單元

[root@localhost ~]# systemctl --failed

0 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

查詢防火牆是否啟動

[root@localhost ~]# systemctl is-enabled firewalld.service

enabled

查詢防火牆的運行狀態

[root@localhost ~]# systemctl status firewalld.service

● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 二 2020-10-06 20:53:58 CST; 1h 26min ago
     Docs: man:firewalld(1)
 Main PID: 713 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─713 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

10月 06 20:53:57 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
10月 06 20:53:58 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
10月 06 20:53:58 localhost.localdomain firewalld[713]: WARNING: AllowZoneDrifting is enabled. ...w.
Hint: Some lines were ellipsized, use -l to show in full.

啟動防火牆服務

[root@localhost ~]# systemctl start firewalld.service

停止防火牆服務

[root@localhost ~]# systemctl stop firewalld.service

重啟防火牆服務

[root@localhost ~]# systemctl restart firewalld.service

開機後隨系統啟動防火牆服務

[root@localhost ~]# systemctl enable firewalld.service

開機後不隨系統啟動服務

[root@localhost ~]# systemctl disable firewalld.service

查詢服務是否啟用與設置

[root@localhost ~]# systemctl is-active firewalld
active

強制停止防火牆服務

[root@localhost ~]# systemctl kill firewalld

顯示目前系統預設運作層級

[root@localhost ~]# systemctl get-default
multi-user.target

設定系統預設運作層級

[root@localhost ~]# systemctl get-default multi-user.target

啟動運行層級

[root@localhost ~]# systemctl isolate multiuser.target

查詢 systemd 工具是否存在

[root@localhost ~]# yum list installed | grep systemd

systemd.x86_64                        219-73.el7_8.9                   @updates
systemd-libs.x86_64                   219-73.el7_8.9                   @updates
systemd-sysv.x86_64                   219-73.el7_8.9                   @updates

Service

service指令可以啟動、停止、重新啟動、關閉服務等功能

  • /etc/init.d/ service 系統的服務啟動檔位置

啟動網路卡服務

[root@localhost ~]# service network start

停止網路卡服務

[root@localhost ~]# service network stop

重新啟動網路卡服務

[root@localhost ~]# service network restart

檢視網路卡服務狀態

[root@localhost /]# service network status

設定好的裝置:
lo enp0s3
目前作用中的裝置:
lo enp0s3

檢視全部系統服務的狀態

[root@localhost /]# service --status-all

未載入 netconsole 模組
設定好的裝置:
lo enp0s3
目前作用中的裝置:
lo enp0s3

chkconfig

chkconfig 是 系統服務(service)管理工具底下的指令工具,會隨著系統服務(service)啟動或關閉程序,簡單來說 chkconfig 是用於維護 /etc/rc[0-6].d 目錄的指令工具。

幫助指令

[root@localhost /]# chkconfig  --help

chkconfig 版本 1.7.4 - 版權所有 (C) 1997-2000 Red Hat, Inc.
在遵守 GNU 通用公共許可證 (GPL) 的條款下,可以自由散布這個程式。

用法:chkconfig [--list] [--type <類型>] [名稱]
         chkconfig --add <名稱>
         chkconfig --del <名稱>
         chkconfig --override <名稱>
         chkconfig [--level <層級>] [--type <類型>] <名稱> <on|off|reset|resetpriorities>

檢視所有服務啟動狀態

[root@localhost /]# chkconfig --list

注意:本輸出僅顯示 SysV 服務,並且不包含原生的 systemd 服務。
      SysV 組態資料可能會被原生的 systemd 組態凌駕。

      若您希望列出 systemd 服務,請使用「systemctl list-unit-files」。
      若要查看啟用於特定目的地上的服務,請使用
      「systemctl list-dependencies [target]」。

netconsole      0:關閉  1:關閉  2:關閉  3:關閉  4:關閉  5:關閉  6:關閉
network         0:關閉  1:關閉  2:開啟  3:開啟  4:開啟  5:開啟  6:關閉

檢視某一個服務的啟動狀態

[root@localhost /]# chkconfig --list network

注意:本輸出僅顯示 SysV 服務,並且不包含原生的 systemd 服務。
      SysV 組態資料可能會被原生的 systemd 組態凌駕。

      若您希望列出 systemd 服務,請使用「systemctl list-unit-files」。
      若要查看啟用於特定目的地上的服務,請使用
      「systemctl list-dependencies [target]」。

network         0:關閉  1:關閉  2:開啟  3:開啟  4:開啟  5:開啟  6:關閉

設定某一服務開機

[root@localhost /]# chkconfig network on

設定某一服務關閉

[root@localhost /]# chkconfig network off

設定某一服務重啟

[root@localhost /]# chkconfig network reset

增加某一服務

[root@localhost /]# chkconfig --add network

刪除某一服務

[root@localhost /]# chkconfig --del network

設定服務運作級別

[root@localhost /]# chkconfig --level [等級] [服務名稱] [動作]
  • 等級0表示:表示關機
  • 等級1表示:單使用者模式
  • 等級2表示:無網路連線的多使用者命令列模式
  • 等級3表示:有網路連線的多使用者命令列模式
  • 等級4表示:不可用
  • 等級5表示:帶圖形介面的多使用者模式
  • 等級6表示:重新啟動
[root@localhost ~]# chkconfig --level 5 network on

上一篇
Day 20 檔案工具
下一篇
Day 22 Shell
系列文
如何使用 Linux 從土裡到冒出頭來30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言